package com.xgk.boot.module.core.dal.entity.truck;

import com.baomidou.mybatisplus.annotation.*;
import com.xgk.boot.framework.mybatis.core.dataobject.BaseNoDO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalTime;
import java.time.LocalDateTime;

/**
 * 订单收发货地址实体
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("truck_order_address")
public class TruckOrderAddressDO extends BaseNoDO {

    @TableId(value = "oa_id", type = IdType.ASSIGN_ID)
    private Long oaId;

    /** 订单编号（格式：客户编码_订单ID） */
    @TableField("order_code")
    private String orderCode;

    /** 地址类型：0-发货方 1-收货方 */
    @TableField("oa_type")
    private Integer oaType;

    /** 收件人名 */
    @TableField("oa_firstname")
    private String oaFirstname;

    /** 收件人姓 */
    @TableField("oa_lastname")
    private String oaLastname;

    /** 公司名称 */
    @TableField("oa_company")
    private String oaCompany;

    /** 国家代码（默认US） */
    @TableField("oa_country")
    private String oaCountry;

    /** 邮政编码 */
    @TableField("oa_postcode")
    private String oaPostcode;

    /** 州/省 */
    @TableField("oa_state")
    private String oaState;

    /** 城市 */
    @TableField("oa_city")
    private String oaCity;

    /** 街道地址第一行 */
    @TableField("oa_street_address1")
    private String oaStreetAddress1;

    /** 街道地址第二行 */
    @TableField("oa_street_address2")
    private String oaStreetAddress2;

    /** 单元/门牌号 */
    @TableField("oa_unit")
    private String oaUnit;

    /** 联系电话（含国际区号） */
    @TableField("oa_telphone")
    private String oaTelphone;

    /** 电话分机号 */
    @TableField("oa_telphone_extension")
    private String oaTelphoneExtension;

    /** 电子邮箱 */
    @TableField("oa_email")
    private String oaEmail;

    /** 特殊要求（JSON格式存储） */
    @TableField("accessorials")
    private String accessorials;

    /** 客户参考号 */
    @TableField("reference_no")
    private String referenceNo;

    /** 备注信息 */
    @TableField("note")
    private String note;

    /** 营业开始时间（HHmm格式） */
    @TableField("open_time")
    private String openTime;

    /** 营业结束时间（HHmm格式） */
    @TableField("close_time")
    private String closeTime;

    /** 货物准备完成时间 */
    @TableField("pick_ready_datetime")
    private LocalDateTime pickReadyDatetime;

    /** 提货窗口类型：0-无 1-需收货人确认 2-需其他方式确认 */
    @TableField("deliver_window_type")
    private String deliverWindowType;

    /** 提货联系电话（用于短信通知） */
    @TableField("deliver_telphone")
    private String deliverTelphone;

    /** 提货联系邮箱 */
    @TableField("deliver_email")
    private String deliverEmail;
}